package br.com.keropizza.dominio;

import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.validation.constraints.NotNull;

import org.hibernate.validator.constraints.NotBlank;

/**
 * @author fabio
 *
 */
@Entity(name = "pedido")
public class Pedido {
	
	private Long id;
	
	private Cliente cliente;
	
	private Endereco endereco;
	
	private List<Pizza> pizzas;
	
	private int quantidadeRefrigerantes;
	
	private double precoPizza;
	
	private double precoRefrigerante;
	
	private double precoEntrega;
	
	private double precoTotal;
	
	private double precoAPagarPeloCliente;
	
	@Id
	@GeneratedValue
	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	@NotNull
	@ManyToOne
	@JoinColumn(name = "cliente_id")
	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
	public List<Pizza> getPizzas() {
		return pizzas;
	}

	public void setPizzas(List<Pizza> pizzas) {
		this.pizzas = pizzas;
	}

	@NotNull
	@ManyToOne
	@JoinColumn(name = "endereco_id")
	public Endereco getEndereco() {
		return endereco;
	}

	public void setEndereco(Endereco endereco) {
		this.endereco = endereco;
	}

	public int getQuantidadeRefrigerantes() {
		return quantidadeRefrigerantes;
	}

	public void setQuantidadeRefrigerantes(int quantidadeRefrigerantes) {
		this.quantidadeRefrigerantes = quantidadeRefrigerantes;
	}

	public double getPrecoPizza() {
		return precoPizza;
	}

	public void setPrecoPizza(double precoPizza) {
		this.precoPizza = precoPizza;
	}

	
	public double getPrecoRefrigerante() {
		return precoRefrigerante;
	}

	public void setPrecoRefrigerante(double precoRefrigerante) {
		this.precoRefrigerante = precoRefrigerante;
	}

	public double getPrecoEntrega() {
		return precoEntrega;
	}

	public void setPrecoEntrega(double precoEntrega) {
		this.precoEntrega = precoEntrega;
	}

	public double getPrecoTotal() {
		return precoTotal;
	}

	public void setPrecoTotal(double precoTotal) {
		this.precoTotal = precoTotal;
	}

	public double getPrecoAPagarPeloCliente() {
		return precoAPagarPeloCliente;
	}

	public void setPrecoAPagarPeloCliente(double precoAPagarPeloCliente) {
		this.precoAPagarPeloCliente = precoAPagarPeloCliente;
	}
}
